package com.dd.cloud.user.service.pres;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.cloud.user.DTO.hr.ReturnDrugList;
import com.dd.cloud.user.DTO.hst.HstDrugsResDTO;
import com.dd.cloud.user.DTO.yf.ReturnQueryDrugKlResultDTO;
import com.dd.cloud.user.entity.pres.DrugsModel;
import com.dd.cloud.user.req.pres.DrugsModelAddReq;
import com.dd.cloud.user.req.pres.DrugsModelUpdateReq;
import com.dd.cloud.user.req.pres.PresPageReq;
import com.dd.cloud.user.res.pres.DrugsModelManagePageRes;
import com.dd.cloud.user.res.pres.DrugsModelPageRes;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 中药仓库表 服务类
 * </p>
 *
 * @author czg
 * @since 2022-05-09
 */
public interface IDrugsModelService extends IService<DrugsModel> {
    /**
     * 关键字搜索药品 识别药品名,药品别名, 即拼音
     *
     * @param keyword
     * @return
     */
    List<DrugsModel> getDrugsModelListByKeyword(String keyword);

    /**
     * 设置药材拼音
     */
    void setDrugsPinyin();

    /**
     * 分页查询药材
     *
     * @param req
     * @return
     */
    Page<DrugsModelPageRes> getDrugsModelPage(PresPageReq req);

    /**
     * 添加药品数据
     *
     * @param req
     */
    void addDrugsModel(DrugsModelAddReq req);

    /**
     * 修改药品数据
     *
     * @param req
     */
    void updateDrugsModel(DrugsModelUpdateReq req);

    /**
     * 修改药品状态
     *
     * @param id
     * @param status
     */
    void updateStatusDrugsModel(Integer id, Integer status);

    /**
     * 通过名字批量查询药材信息
     *
     * @param names
     * @param pharId
     * @return
     */
    Map<String, Object> drugsModelListByNameAndPharId(String names, Integer pharId);

    /**
     * 查询不存在的药品, 通过药品编号列表
     *
     * @param nums
     * @return
     */
    void getDrugsNoExistByDrugNum(List<String> nums);

    /**
     * 导入中药材详细信息数据
     *
     * @param file     excel文件
     * @param pharFlag 药房标识
     */
    void importExcelDrugs(MultipartFile file, String pharFlag);

    /**
     * @param file:
     * @return void
     * @description excel导入平台药房药材数据
     * @author czg
     * @date 2023/4/18 14:39
     */
    Map<String, String> importExcelPharDrugs(MultipartFile file);

    /**
     * 药房查询药材编码
     */
    Page<DrugsModelManagePageRes> getDrugsModelManagePage(PresPageReq req);

    /**
     * 药材数据更新到es
     */
    void drugsEsUpdate();

    /**
     * 设置繁体
     */
    void setDrugTraditional();

    /**
     * 同步一方制药颗粒药材数据
     *
     * @param list
     * @param pharmacyId
     */
    void syncYfKlDrugInfo(List<ReturnQueryDrugKlResultDTO> list, Integer pharmacyId);

    /**
     * 导入一方制药颗粒药材价格
     *
     * @param file
     */
    void importYfKlDrugPrice(MultipartFile file);

    /**
     * 同步华润三九药材数据
     * @param pharmacyId
     * @param resultDTOList
     */
    void syncHrDrugInfo(List<ReturnDrugList> resultDTOList, Integer pharmacyId);

    /**
     * 导入华润制药药品价格
     */
    void importHrDrugPrice(MultipartFile file);

    /**
     * 同步和顺堂药材目录
     */
    void syncHstDrugInfo(List<HstDrugsResDTO.DrugList> drugList, Integer id);


}
